<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/Python-3.6.2/Include/boolobject.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/Python-3.6.2/Include/boolobject.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/* Boolean object interface */</span>
<a name="2" /><span class="True">       2:</span> 
<a name="3" /><span class="True">       3:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="macros_noref.html#_UHlfQk9PTE9CSkVDVF9IXzA_"><span class="b">Py_BOOLOBJECT_H</span></a>
<a name="4" /><span class="True">       4:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlfQk9PTE9CSkVDVF9IXzA_"><span class="b">Py_BOOLOBJECT_H</span></a>
<a name="5" /><span class="False">       5:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="6" /><span class="False">       6:</span> <span class="m">extern</span> <span class="e">&quot;C&quot;</span> <span class="f">{</span>
<a name="7" /><span class="True">       7:</span> <span class="f">#</span><span class="n">endif</span>
<a name="8" /><span class="True">       8:</span> 
<a name="9" /><span class="True">       9:</span> 
<a name="10" /><span class="True">      10:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="b">PyTypeObject</span><span class="f">)</span> <span class="b">PyBool_Type</span><span class="f">;</span>
<a name="11" /><span class="True">      11:</span> 
<a name="12" /><span class="True">      12:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_noref.html#_UHlCb29sX0NoZWNrXzA_"><span class="b">PyBool_Check</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">(</span><a href="macros_ref.html#_UHlfVFlQRV8w"><span class="b">Py_TYPE</span></a><span class="f">(</span><span class="b">x</span><span class="f">)</span> <span class="f">==</span> <span class="f">&amp;</span><span class="b">PyBool_Type</span><span class="f">)</span>
<a name="13" /><span class="True">      13:</span> 
<a name="14" /><span class="True">      14:</span> <span class="k">/* Py_False and Py_True are the only two bools in existence.</span>
<a name="15" /><span class="True">      15:</span> <span class="k">Don&apos;t forget to apply Py_INCREF() when returning either!!! */</span>
<a name="16" /><span class="True">      16:</span> 
<a name="17" /><span class="True">      17:</span> <span class="k">/* Don&apos;t use these directly */</span>
<a name="18" /><span class="True">      18:</span> <a href="macros_ref.html#_UHlBUElfREFUQV8w"><span class="b">PyAPI_DATA</span></a><span class="f">(</span><span class="m">struct</span> <span class="b">_longobject</span><span class="f">)</span> <span class="b">_Py_FalseStruct</span><span class="f">,</span> <span class="b">_Py_TrueStruct</span><span class="f">;</span>
<a name="19" /><span class="True">      19:</span> 
<a name="20" /><span class="True">      20:</span> <span class="k">/* Use these macros */</span>
<a name="21" /><span class="True">      21:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlfRmFsc2VfMA__"><span class="b">Py_False</span></a> <span class="f">(</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="f">&amp;</span><span class="b">_Py_FalseStruct</span><span class="f">)</span>
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlfVHJ1ZV8w"><span class="b">Py_True</span></a> <span class="f">(</span><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="f">&amp;</span><span class="b">_Py_TrueStruct</span><span class="f">)</span>
<a name="23" /><span class="True">      23:</span> 
<a name="24" /><span class="True">      24:</span> <span class="k">/* Macros for returning Py_True or Py_False, respectively */</span>
<a name="25" /><span class="True">      25:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlfUkVUVVJOX1RSVUVfMA__"><span class="b">Py_RETURN_TRUE</span></a> <span class="m">return</span> <a href="macros_ref.html#_UHlfSU5DUkVGXzA_"><span class="b">Py_INCREF</span></a><span class="f">(</span><a href="macros_ref.html#_UHlfVHJ1ZV8w"><span class="b">Py_True</span></a><span class="f">)</span><span class="f">,</span> <a href="macros_ref.html#_UHlfVHJ1ZV8w"><span class="b">Py_True</span></a>
<a name="26" /><span class="True">      26:</span> <span class="f">#</span><span class="n">define</span> <a href="macros_ref.html#_UHlfUkVUVVJOX0ZBTFNFXzA_"><span class="b">Py_RETURN_FALSE</span></a> <span class="m">return</span> <a href="macros_ref.html#_UHlfSU5DUkVGXzA_"><span class="b">Py_INCREF</span></a><span class="f">(</span><a href="macros_ref.html#_UHlfRmFsc2VfMA__"><span class="b">Py_False</span></a><span class="f">)</span><span class="f">,</span> <a href="macros_ref.html#_UHlfRmFsc2VfMA__"><span class="b">Py_False</span></a>
<a name="27" /><span class="True">      27:</span> 
<a name="28" /><span class="True">      28:</span> <span class="k">/* Function to return a bool from a C long */</span>
<a name="29" /><span class="True">      29:</span> <a href="macros_ref.html#_UHlBUElfRlVOQ18w"><span class="b">PyAPI_FUNC</span></a><span class="f">(</span><span class="b">PyObject</span> <span class="f">*</span><span class="f">)</span> <span class="b">PyBool_FromLong</span><span class="f">(</span><span class="m">long</span><span class="f">)</span><span class="f">;</span>
<a name="30" /><span class="True">      30:</span> 
<a name="31" /><span class="False">      31:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">__cplusplus</span>
<a name="32" /><span class="False">      32:</span> <span class="f">}</span>
<a name="33" /><span class="True">      33:</span> <span class="f">#</span><span class="n">endif</span>
<a name="34" /><span class="True">      34:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !Py_BOOLOBJECT_H */</span>
<a name="35" /><span class="True">      35:</span> </pre>
  </body>
</html>
